

package cn.shengchao.examstar.mobileterminalpageconfig.acl.adapters.repositories;

import cn.shengchao.base.enums.DisEnableStatusEnum;
import cn.shengchao.examstar.mobileterminalpageconfig.acl.ports.message.MobileTerminalPageConfigDto;
import cn.shengchao.examstar.mobileterminalpageconfig.acl.ports.repositories.IMobileTerminalPageConfigRepository;
import cn.shengchao.examstar.mobileterminalpageconfig.infrastructure.dao.MobileTerminalPageConfigDao;
import cn.shengchao.examstar.mobileterminalpageconfig.infrastructure.dao.po.TMobileTerminalPageConfig;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.stream.Collectors;

@Repository
public class MobileTerminalPageConfigRepository implements IMobileTerminalPageConfigRepository {

    @Autowired
    private MobileTerminalPageConfigDao mobileTerminalPageConfigDao;

    @Override
    public List<MobileTerminalPageConfigDto> getOnlineListByAppidAndIndex(String appid, Long index) {
        return mobileTerminalPageConfigDao.selectList(new LambdaQueryWrapper<TMobileTerminalPageConfig>()
            .eq(TMobileTerminalPageConfig::getAppid, appid)
            .eq(TMobileTerminalPageConfig::getStatus, DisEnableStatusEnum.ENABLE)
            .orderByAsc(TMobileTerminalPageConfig::getSort)
            .eq(TMobileTerminalPageConfig::getIndex, index)).stream().map(this::toDto).collect(Collectors.toList());
    }

    private MobileTerminalPageConfigDto toDto(TMobileTerminalPageConfig tMobileTerminalPageConfig) {
        MobileTerminalPageConfigDto mobileTerminalMenuDto = new MobileTerminalPageConfigDto();
        mobileTerminalMenuDto.setId(tMobileTerminalPageConfig.getId());
        mobileTerminalMenuDto.setName(tMobileTerminalPageConfig.getName());
        mobileTerminalMenuDto.setPath(tMobileTerminalPageConfig.getPath());
        mobileTerminalMenuDto.setIcon(tMobileTerminalPageConfig.getIcon());
        mobileTerminalMenuDto.setType(tMobileTerminalPageConfig.getType());
        mobileTerminalMenuDto.setToAppid(tMobileTerminalPageConfig.getToAppid());
        mobileTerminalMenuDto.setIsExternalLink(tMobileTerminalPageConfig.getIsExternalLink());
        mobileTerminalMenuDto.setIndex(tMobileTerminalPageConfig.getIndex());
        return mobileTerminalMenuDto;
    }
}
